import time

from public.action import *
from public.business import *
from public.testData import *
from public.tools import *

testCase = "DBshop009_订单管理申请退货流程"

# 1.在首页搜索"小米",点击搜索按钮
firefox=openBrowser(url) #调用自定义函数打开网页,url的值是在testData文件中定义的
#调用自定义函数进行登录
DBshopLogin(firefox,userName,password)

firefox.get(url)#在首页的搜索框输入小米
firefox.find_element_by_xpath('//input[@name="keywords"]').send_keys('小米')
#点击搜索按钮
firefox.find_element_by_xpath('//input[@type="submit"]').click()
# 2.选择小米mix3,加入到购物车,点击购物车按钮
# #下拉右侧滚动条
# firefox.execute_script("window.scrollTo(0,500)")
# priceElement=firefox.find_element_by_id('goods_price_8')
# #调用自定义函数进行模拟鼠标移动
# moveToElement(firefox,priceElement)
# #点击加入购物车按钮
# firefox.find_element_by_xpath('//a[@onclick="add_cart(8, 2);"]').click()
# #点击进入购物车
# firefox.find_element_by_id('J_miniCart').click()
#点击商品图片弹出新页面
firefox.find_element_by_xpath('//a[@href="/dbshop/goods/8/2"]').click()
#调用函数切换页面
switchWindow(firefox,2)
#在新页面中点击加入购物车按钮
firefox.find_element_by_id('add_cart_submit').click()
time.sleep(2)
#点击去购物车结算按钮
firefox.find_element_by_link_text('去购物车结算').click()
# 3.点击"去结算"按钮
firefox.find_element_by_link_text('去结算').click()
# 4.默认地址已经被选择,点击下一步按钮
firefox.find_element_by_xpath('//input[@value="下一步"]').click()
# 5.支付方式选择"余额支付",点击确认订单
firefox.find_element_by_xpath('//input[@value="yezf"]').click()
firefox.find_element_by_xpath('//input[@value="确认订单"]').click()
#使用变量orderNO存储订单编号
orderNO=firefox.find_element_by_xpath('(//font[@color="color:#ED145B"])[2]').text
rootPath=get_pro_rootpath()
writeFile(rootPath+'\public\order1.txt',orderNO) # 将订单编号写入到文件中
# 6.点击马上支付,支付成功
firefox.find_element_by_xpath('//input[@value="马上去支付"]').click()
# 7.登录后台管理系统,地址是"http://localhost/dbshop/admin",
firefox.get(urlAdmin)
#调用自定义函数进行后台的登录
DBshopLoginAdmin(firefox)
# 8.点击销售管理，订单管理，找到刚才前台提交的订单，点击“编辑查看”。
#调用后台的菜单操作函数
DBshopEnterMenu2(firefox,'销售管理','订单管理')
#搜索出订单
firefox.find_element_by_name('order_sn').send_keys(orderNO)#输入订单编号，orderNO里面就是刚才下单的时候存储的订单编号
firefox.find_element_by_xpath('//button').click()#点击搜索按钮
firefox.find_element_by_link_text('编辑查看').click()
# 9.点击发货操作按钮，编辑快递单号“00100001111” 发货说明“保证正品”，点击“点击发货”按钮。
firefox.find_element_by_link_text('发货操作').click()
firefox.find_element_by_name('express_number').send_keys(EMSid)#输入快递单号
firefox.find_element_by_id('state_info').send_keys('保证正品')
firefox.find_element_by_xpath('//button[contains(text(),"点击发货")]').click()
# 10.进入前台我的订单,点击退货申请，点此申请退货
firefox.get(url)
firefox.find_element_by_link_text('我的订单').click()
firefox.find_element_by_link_text('退货申请').click()
firefox.find_element_by_link_text('点此申请退货').click()
# 11.输入订单编号，点击查询，输入退货原因“不想要了”
firefox.find_element_by_id("order_sn").send_keys(orderNO)
firefox.find_element_by_xpath('//button[contains(text(),"点击查询")]').click()
time.sleep(5)
firefox.find_element_by_name("refund_info").send_keys('不想要了')
firefox.find_element_by_xpath('//button[contains(text(),"申请退货")]').click()
time.sleep(2)
al=firefox.switch_to.alert
al.accept()
time.sleep(2)

#断言
try:
    firefox.find_element_by_link_text(orderNO)
    writeLog("%s 测试通过"%testCase)
    time.sleep(3)
except:
    writeLog("%s 测试失败" % testCase)
    getPhoto(firefox)

